JDBC দিয়ে H2 এর ব্যবহার

Database Tutorials - এইচ২ ডাটাবেস (H2 Database) বাস্তব উদাহরণ এবং ব্যবহারিক ডেমো |
200
200

JDBC (Java Database Connectivity) হল Java-তে ডেটাবেজের সাথে যোগাযোগ করার জন্য একটি API, যা ডেটাবেজ থেকে ডেটা নিয়ে আসা, ডেটা আপডেট করা, ইনসার্ট করা এবং ডিলিট করার জন্য ব্যবহৃত হয়। H2 ডেটাবেজে JDBC ব্যবহার করে আপনি সহজেই Java অ্যাপ্লিকেশন থেকে ডেটাবেজের সাথে ইন্টারঅ্যাক্ট করতে পারেন।

এই টিউটোরিয়ালে আমরা JDBC ব্যবহার করে H2 ডেটাবেজ এর বিভিন্ন কার্যকলাপ, যেমন ডেটাবেজে সংযোগ স্থাপন, কুয়েরি এক্সিকিউট করা, এবং ফলাফল পড়া দেখাব।


JDBC দিয়ে H2 ডেটাবেজে সংযোগ স্থাপন

JDBC ব্যবহার করে H2 ডেটাবেজে সংযোগ স্থাপন করার জন্য প্রথমে আপনাকে H2 ড্রাইভার প্রয়োজন হবে। H2 ড্রাইভার সাধারণত .jar ফাইল হিসেবে সরবরাহ করা হয়, যা আপনার প্রোজেক্টে যোগ করতে হবে।

১. H2 ড্রাইভার অ্যাড করা (H2 JDBC Jar ফাইল)

H2 JDBC ড্রাইভার .jar ফাইল ডাউনলোড করতে H2 Official Website থেকে ডাউনলোড করুন এবং আপনার Java প্রোজেক্টে এটিকে যোগ করুন।

২. H2 ডেটাবেজে JDBC সংযোগ স্থাপন করা

এখানে একটি সাধারণ উদাহরণ দেওয়া হলো, যেখানে আমরা H2 ডেটাবেজে JDBC ব্যবহার করে সংযোগ স্থাপন করব, কুয়েরি এক্সিকিউট করব এবং ফলাফল বের করব।

import java.sql.*;

public class H2JDBCExample {
    public static void main(String[] args) {
        // H2 ডেটাবেজের URL, ইউজারনেম, এবং পাসওয়ার্ড
        String url = "jdbc:h2:~/test"; // ~ মানে হোম ডিরেক্টরি
        String user = "sa";  // ডিফল্ট ইউজারনেম
        String password = "";  // ডিফল্ট পাসওয়ার্ড

        try {
            // ডেটাবেজে সংযোগ স্থাপন
            Connection conn = DriverManager.getConnection(url, user, password);

            // SQL কুয়েরি তৈরি করা
            String sql = "SELECT * FROM employees"; // ধরুন employees টেবিল আছে

            // কুয়েরি এক্সিকিউট করা
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery(sql);

            // ফলাফল প্রদর্শন করা
            while (rs.next()) {
                int id = rs.getInt("id");
                String name = rs.getString("name");
                int age = rs.getInt("age");
                System.out.println("ID: " + id + ", Name: " + name + ", Age: " + age);
            }

            // সংযোগ বন্ধ করা
            conn.close();

        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

এখানে:

  • DriverManager.getConnection(): এটি H2 ডেটাবেজের সাথে সংযোগ স্থাপন করার জন্য ব্যবহার করা হয়।
  • Statement: SQL কুয়েরি এক্সিকিউট করার জন্য ব্যবহার করা হয়।
  • ResultSet: SQL কুয়েরি থেকে প্রাপ্ত ডেটা ধারণ করে এবং সেই ডেটা অ্যাক্সেস করতে ব্যবহৃত হয়।

৩. SQL কুয়েরি এক্সিকিউট করা

JDBC-এ SQL কুয়েরি চালাতে Statement বা PreparedStatement ব্যবহার করা হয়। এখানে Statement ব্যবহার করে কুয়েরি এক্সিকিউট করা হয়েছে।

Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM employees");
  • executeQuery(): এটি SELECT কুয়েরির জন্য ব্যবহৃত হয়, যা ডেটা বের করে এবং ResultSet ফেরত দেয়।
  • executeUpdate(): এটি INSERT, UPDATE, বা DELETE কুয়েরির জন্য ব্যবহৃত হয়, যেগুলো ডেটাবেজে পরিবর্তন করে।

PreparedStatement ব্যবহার করা

PreparedStatement ব্যবহারে নিরাপদ এবং কার্যকরী SQL কুয়েরি তৈরি করা যায়, যা SQL ইনজেকশন প্রতিরোধ করে।

PreparedStatement ব্যবহার করে SQL কুয়েরি এক্সিকিউট করা

String sql = "INSERT INTO employees (id, name, age) VALUES (?, ?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);

// প্যারামিটার সেট করা
pstmt.setInt(1, 1);  // id = 1
pstmt.setString(2, "John Doe");  // name = "John Doe"
pstmt.setInt(3, 30);  // age = 30

// কুয়েরি এক্সিকিউট করা
pstmt.executeUpdate();
  • setInt(), setString() ইত্যাদি মেথড ব্যবহার করে প্যারামিটারগুলোর মান সেট করা হয়।
  • executeUpdate() কুয়েরি এক্সিকিউট করে ডেটাবেজে পরিবর্তন আনে (যেমন, ইনসার্ট, আপডেট, ডিলিট)।

ডেটা ইন্সার্ট, আপডেট, এবং ডিলিট করা

1. INSERT কুয়েরি

String sql = "INSERT INTO employees (id, name, age) VALUES (?, ?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, 2);
pstmt.setString(2, "Jane Smith");
pstmt.setInt(3, 28);
pstmt.executeUpdate();

2. UPDATE কুয়েরি

String sql = "UPDATE employees SET age = ? WHERE id = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, 29); // নতুন বয়স
pstmt.setInt(2, 2);  // id = 2
pstmt.executeUpdate();

3. DELETE কুয়েরি

String sql = "DELETE FROM employees WHERE id = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, 2);  // id = 2
pstmt.executeUpdate();

JDBC-এ ট্রানজ্যাকশন ম্যানেজমেন্ট

JDBC তে ডেটাবেজের মধ্যে ট্রানজ্যাকশন ম্যানেজমেন্ট পরিচালনা করতে commit() এবং rollback() ব্যবহৃত হয়।

ট্রানজ্যাকশন ম্যানেজমেন্ট উদাহরণ

conn.setAutoCommit(false); // অটোমেটিক কমিট বন্ধ করা

try {
    // একাধিক অপারেশন
    PreparedStatement pstmt1 = conn.prepareStatement("UPDATE employees SET age = ? WHERE id = ?");
    pstmt1.setInt(1, 35);
    pstmt1.setInt(2, 1);
    pstmt1.executeUpdate();

    PreparedStatement pstmt2 = conn.prepareStatement("INSERT INTO employees (id, name, age) VALUES (?, ?, ?)");
    pstmt2.setInt(1, 3);
    pstmt2.setString(2, "Alice Brown");
    pstmt2.setInt(3, 40);
    pstmt2.executeUpdate();

    conn.commit(); // ট্রানজ্যাকশন কমিট করা
} catch (SQLException e) {
    conn.rollback(); // সমস্যা হলে রোলব্যাক করা
}

এখানে:

  • setAutoCommit(false): ডিফল্টভাবে, JDBC ট্রানজ্যাকশনগুলো অটোমেটিক্যালি কমিট করে, কিন্তু setAutoCommit(false) দিয়ে এটি বন্ধ করা হয় এবং ট্রানজ্যাকশন পরিচালনা করা হয়।
  • commit(): ট্রানজ্যাকশন কমিট করে সমস্ত পরিবর্তন ডেটাবেজে স্থায়ী করে।
  • rollback(): কোনো ত্রুটি হলে ট্রানজ্যাকশন রোলব্যাক করে এবং পূর্বের অবস্থা ফিরিয়ে নেয়।

JDBC দিয়ে H2 ডেটাবেজের কার্যকরী ব্যবহার

  1. ডেটাবেজ সংযোগ স্থাপন এবং কুয়েরি এক্সিকিউট করা
  2. PreparedStatement ব্যবহার করে নিরাপদ কুয়েরি
  3. ট্রানজ্যাকশন ম্যানেজমেন্ট ব্যবহার করে একাধিক অপারেশন পরিচালনা
  4. ডেটাবেজে ডেটা ইনসার্ট, আপডেট, এবং ডিলিট করা

JDBC-এর মাধ্যমে H2 ডেটাবেজে সহজেই সংযোগ স্থাপন করা যায় এবং Java অ্যাপ্লিকেশন থেকে ডেটাবেজ অপারেশনগুলি পরিচালনা করা যায়। JDBC একটি শক্তিশালী API, যা ডেটাবেজ অ্যাক্সেস এবং ম্যানিপুলেশনের জন্য ব্যবহৃত হয়।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion